﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ControlYSeguimiento.Domain
{
    [Serializable]
    public class Coordinate
    {

        public Coordinate(string latitude, string longitude)
        {
            Latitude = latitude;
            Longitude = longitude;
            if (String.IsNullOrEmpty(latitude) == false) LatitudeDb = Convert.ToDouble(latitude.Replace('.', ','));
            else LatitudeDb = 0;
            if (String.IsNullOrEmpty(longitude) == false) LongitudeDb = Convert.ToDouble(longitude.Replace('.', ','));
            else LongitudeDb = 0;
        }

        public Coordinate(string p)
        {
            if (String.IsNullOrEmpty(p)) throw new Exception("El parametro es NULL o vacio y no se puede generar una coordenada de allí");

            string[] arr = p.Trim().Split(new char[] { '[' });
            arr[1] = arr[1].Substring(0, arr[1].Length - 1);
            arr[2] = arr[2].Substring(0, arr[2].Length - 1);
            Latitude = arr[1];
            Longitude = arr[2];
            if (String.IsNullOrEmpty(Latitude) == false) LatitudeDb = Convert.ToDouble(Latitude.Replace('.', ','));
            else LatitudeDb = 0;
            if (String.IsNullOrEmpty(Longitude) == false) LongitudeDb = Convert.ToDouble(Longitude.Replace('.', ','));
            else LongitudeDb = 0;

        }

        public string Latitude
        {
            get;
            set;
        }
        public string Longitude
        {
            get;
            set;
        }
        public double LatitudeDb { get; set; }
        public double LongitudeDb { get; set; }

        public override string ToString()
        {
            if (String.IsNullOrEmpty(this.Latitude) || String.IsNullOrEmpty(this.Longitude)) return String.Empty;
            else return "[" + Latitude + "][" + Longitude + "]";
        }
    }

}
